home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1997 May / PC Plus Super CD Issue 127 (May 1997).iso / delphi2 / delphite.exe / data.z / TEXTLIST.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-08-12  |  1.9 KB  |  82 lines

  1. {*************************************************}
  2. {*  QuickReport for Delphi                       *}
  3. {*  Demo Report TextList                         *}
  4. {*                                               *}
  5. {*  Shows how to use the OnNeedData event to     *}
  6. {*  create reports from custom datasources       *}
  7. {*************************************************}
  8.  
  9.  
  10. unit TextList;
  11.  
  12. interface
  13.  
  14. uses
  15.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  16.   StdCtrls, Quickrep, ExtCtrls;
  17.  
  18. type
  19.   TTextRep = class(TForm)
  20.     QRBand1: TQRBand;
  21.     Rep: TQuickReport;
  22.     QRLabel1: TQRLabel;
  23.     QRBand2: TQRBand;
  24.     QRBand3: TQRBand;
  25.     QRLabel2: TQRLabel;
  26.     QRSysData3: TQRSysData;
  27.     QRSysData1: TQRSysData;
  28.     QRSysData2: TQRSysData;
  29.     procedure RepBeforePrint(var PrintReport : Boolean);
  30.     procedure RepAfterPrint(Sender: TObject);
  31.     procedure RepNeedData(var MoreData: Boolean);
  32.   private
  33.     { Private declarations }
  34.     aFile : Text;
  35.   public
  36.     { Public declarations }
  37.   end;
  38.  
  39. var
  40.   TextRep: TTextRep;
  41.  
  42. implementation
  43.  
  44. {$R *.DFM}
  45.  
  46. procedure TTextRep.RepBeforePrint(var PrintReport : Boolean);
  47. var
  48.    aOpenDialog : TOpenDialog;
  49. begin
  50.    aOpenDialog:=TopenDialog.Create(self);
  51.    with aOpenDialog do begin
  52.       Filter:='Pascal files (*.PAS)|*.PAS|Text files (*.TXT)|*.TXT';
  53.       Options:=[ofFileMustExist];
  54.       if not execute then PrintReport:=false
  55.       else  begin
  56.          AssignFile(aFile,Filename);
  57.          Reset(afile);
  58.          Rep.ReportTitle:=Filename;
  59.       end;
  60.       Free;
  61.    end;
  62. end;
  63.  
  64. procedure TTextRep.RepAfterPrint(Sender: TObject);
  65. begin
  66.    CloseFile(aFile);
  67. end;
  68.  
  69. procedure TTextRep.RepNeedData(var MoreData: Boolean);
  70. var
  71.    Line : String;
  72. begin
  73.    if not eof(aFile) then begin
  74.       Readln(aFile,Line);
  75.       QRLabel1.Caption:=Line;
  76.       MoreData:=True;
  77.    end
  78.    else MoreData:=False;
  79. end;
  80.  
  81. end.
  82.